﻿Imports System.Data
Imports System.Data.SqlClient
Partial Class Sistema_Capsesiones
    Inherits System.Web.UI.Page
    Dim editar As Boolean
    Dim Edad As Integer
    Dim mensaje As String
    Dim Exepcion As String
    Dim NumeroError As Integer
    Public iderespuesta As Integer
    Dim actualizar As Integer
    Dim parentesco As Integer

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Page.IsPostBack = False Then
            hdIdPersona.Value = Request.QueryString.Item("idpersona")

            Using bd As New BdHogaresDataContext
                Dim a = From i In bd.Web_CapPersonas
                          Where i.idPersona = hdIdPersona.Value
                          Select i.txthistoriaclinica, i.txtfechaatencion
                txthistoriaclinica.Text = IIf(IsDBNull(a.First.txthistoriaclinica), "", a.First.txthistoriaclinica)
                'txtfecha.Text = IIf(IsDBNull(a.First.txtfechaatencion), "", a.First.txtfechaatencion)
            End Using


            If Request.QueryString.Item("sesionnumero") = 0 Then
                Try
                    Using bd As New BdHogaresDataContext
                        Dim a = (From i In bd.Web_CapSesiones
                                  Where i.idPersona = hdIdPersona.Value
                                  Select i.txtsesionnumero).Max
                        txtsesionnumero.Text = a.ToString + 1
                    End Using


                Catch ex As Exception
                    txtsesionnumero.Text = 1
                End Try

            Else
                txtsesionnumero.Text = Request.QueryString.Item("sesionnumero") + 1
            End If


            If String.IsNullOrEmpty(Request.QueryString.Item("Editar")) = False Then
                hdEditar.Value = Request.QueryString.Item("Editar")

            End If

            llenarCombos()

            If hdEditar.Value <> 0 Then
                traerPersona()
                editar = True
            End If
        End If

        If hdEditar.Value <> 0 Then
            editar = True
        End If

        listas()
    End Sub

    Sub llenarCombos()
        Using cnn As New SqlConnection(ConfigurationManager.ConnectionStrings("CNNdb").ConnectionString)
            cnn.Open()
            LlenarItems(rbconsultanteasistio, "sino", cnn)
            cnn.Close()
        End Using
    End Sub

    Sub LlenarItems(ByVal objeto As Object, ByVal pregunta As String, ByRef cnn As SqlConnection)
        If pregunta = "sino" Then : objeto.Items.Add(New ListItem("Sí", 1)) : objeto.Items.Add(New ListItem("No", 2)) : Exit Sub : End If
        Using drDatos As SqlDataReader = Funciones.TraerListas(pregunta, cnn)
            With objeto
                .DataSource = drDatos
                .DataTextField = "nombreopcion"
                .DataValueField = "valoropcion"
                .DataBind()
            End With
        End Using

    End Sub

    Sub listas()
        Dim rbl As RadioButtonList
        ' rbl = CType(rbReconoceDiscapacidad, RadioButtonList) : For Each li As ListItem In rbl.Items : li.Attributes.Add("onclick", "frbReconoceDiscapacidad()") : Next
        rbl = CType(rbconsultanteasistio, RadioButtonList) : For Each li As ListItem In rbl.Items : li.Attributes.Add("onclick", "frbconsultanteasistio()") : Next
        rbl.Dispose()
        rbl = Nothing
    End Sub

#Region "cargar Datos"

    Sub traerPersona() 'carga los controles con los datos de la bd
        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_CapSesiones
                      Where i.idPersona = hdIdPersona.Value And i.txtsesionnumero = Request.QueryString.Item("sesionnumero")
                      Select i
            Dim Persona As New Web_CapSesione
            Persona = a.FirstOrDefault()
            'txthistoriaclinica.Text = IIf(IsDBNull(Persona.txthistoriaclinica), "", Persona.txthistoriaclinica)
            txtsesionnumero.Text = IIf(IsDBNull(Persona.txtsesionnumero), "", Persona.txtsesionnumero)
            'txtfecha.Text = IIf(IsDBNull(Persona.txtfecha), "", Persona.txtfecha)
            rbconsultanteasistio.SelectedValue = IIf(IsDBNull(Persona.rbconsultanteasistio), 0, Persona.rbconsultanteasistio)
            txtmotivo.Text = IIf(IsDBNull(Persona.txtmotivo), "", Persona.txtmotivo)
            txtprimerobjetivo.Text = IIf(IsDBNull(Persona.txtprimerobjetivo), "", Persona.txtprimerobjetivo)
            txtprimerindicadorlogro.Text = IIf(IsDBNull(Persona.txtprimerindicadorlogro), "", Persona.txtprimerindicadorlogro)
            txtsegundobjetivo.Text = IIf(IsDBNull(Persona.txtsegundobjetivo), "", Persona.txtsegundobjetivo)
            txtsegundoindicadorlogro.Text = IIf(IsDBNull(Persona.txtsegundoindicadorlogro), "", Persona.txtsegundoindicadorlogro)
            txttercerbjetivo.Text = IIf(IsDBNull(Persona.txttercerbjetivo), "", Persona.txttercerbjetivo)
            txttercerindicadorlogro.Text = IIf(IsDBNull(Persona.txttercerindicadorlogro), "", Persona.txttercerindicadorlogro)
            txtvariacionapreciaciondiagnostica.Text = IIf(IsDBNull(Persona.txtvariacionapreciaciondiagnostica), "", Persona.txtvariacionapreciaciondiagnostica)
            txtobjetivo1.Text = IIf(IsDBNull(Persona.txtobjetivo1), "", Persona.txtobjetivo1)
            txtmeta1.Text = IIf(IsDBNull(Persona.txtmeta1), "", Persona.txtmeta1)
            txtobjetivo2.Text = IIf(IsDBNull(Persona.txtobjetivo2), "", Persona.txtobjetivo2)
            txtmeta2.Text = IIf(IsDBNull(Persona.txtmeta2), "", Persona.txtmeta2)
            txtobjetivo3.Text = IIf(IsDBNull(Persona.txtobjetivo3), "", Persona.txtobjetivo3)
            txtmeta3.Text = IIf(IsDBNull(Persona.txtmeta3), "", Persona.txtmeta3)
            txtresumensesion.Text = IIf(IsDBNull(Persona.txtresumensesion), "", Persona.txtresumensesion)
            txtfechaproximasesion.Text = IIf(IsDBNull(Persona.txtfechaproximasesion), "", Persona.txtfechaproximasesion)
            txthoraproximasesion.Text = IIf(IsDBNull(Persona.txthoraproximasesion), "", Persona.txthoraproximasesion)
        End Using
    End Sub
#End Region

#Region "Metodos"

    Sub guardar() 'Guarda los datos en la bd
        Dim Persona As New Web_CapSesione

        Persona.idPersona = hdIdPersona.Value
        Persona.txthistoriaclinica= txthistoriaclinica.text
        Persona.txtsesionnumero = txtsesionnumero.Text
        Persona.txtfecha = txtfecha.Text
        Persona.rbconsultanteasistio = IIf(rbconsultanteasistio.SelectedIndex = "-1", 0, rbconsultanteasistio.SelectedIndex + 1)
        Persona.txtmotivo = txtmotivo.Text
        Persona.txtprimerobjetivo = txtprimerobjetivo.Text
        Persona.txtprimerindicadorlogro = txtprimerindicadorlogro.Text
        Persona.txtsegundobjetivo = txtsegundobjetivo.Text
        Persona.txtsegundoindicadorlogro = txtsegundoindicadorlogro.Text
        Persona.txttercerbjetivo = txttercerbjetivo.Text
        Persona.txttercerindicadorlogro = txttercerindicadorlogro.Text
        Persona.txtvariacionapreciaciondiagnostica = txtvariacionapreciaciondiagnostica.Text
        Persona.txtobjetivo1 = txtobjetivo1.Text
        Persona.txtmeta1 = txtmeta1.Text
        Persona.txtobjetivo2 = txtobjetivo2.Text
        Persona.txtmeta2 = txtmeta2.Text
        Persona.txtobjetivo3 = txtobjetivo3.Text
        Persona.txtmeta3 = txtmeta3.Text
        Persona.txtresumensesion = txtresumensesion.Text
        Persona.txtfechaproximasesion = txtfechaproximasesion.Text
        Persona.txthoraproximasesion = txthoraproximasesion.Text

        Using bd As New BdHogaresDataContext
            bd.Web_CapSesiones.InsertOnSubmit(Persona)
            bd.SubmitChanges()
            bd.registrarLog(Context.User.Identity.Name, 5, Request.CurrentExecutionFilePath)
        End Using
    End Sub

    Sub actualizardatos() ' Actualiza la informacion cuando ya existe el registro
        Using bda As New BdHogaresDataContext
            Dim Persona = (From i In bda.Web_CapSesiones
                      Where i.idPersona = hdIdPersona.Value And i.txtsesionnumero = txtsesionnumero.Text
                      Select i).Single

            Persona.txthistoriaclinica = txthistoriaclinica.Text
            Persona.rbconsultanteasistio = IIf(rbconsultanteasistio.SelectedIndex = "-1", 0, rbconsultanteasistio.SelectedIndex + 1)
            Persona.txtmotivo = txtmotivo.Text
            Persona.txtprimerobjetivo = txtprimerobjetivo.Text
            Persona.txtprimerindicadorlogro = txtprimerindicadorlogro.Text
            Persona.txtsegundobjetivo = txtsegundobjetivo.Text
            Persona.txtsegundoindicadorlogro = txtsegundoindicadorlogro.Text
            Persona.txttercerbjetivo = txttercerbjetivo.Text
            Persona.txttercerindicadorlogro = txttercerindicadorlogro.Text
            Persona.txtvariacionapreciaciondiagnostica = txtvariacionapreciaciondiagnostica.Text
            Persona.txtobjetivo1 = txtobjetivo1.Text
            Persona.txtmeta1 = txtmeta1.Text
            Persona.txtobjetivo2 = txtobjetivo2.Text
            Persona.txtmeta2 = txtmeta2.Text
            Persona.txtobjetivo3 = txtobjetivo3.Text
            Persona.txtmeta3 = txtmeta3.Text
            Persona.txtresumensesion = txtresumensesion.Text
            Persona.txtfechaproximasesion = txtfechaproximasesion.Text
            Persona.txthoraproximasesion = txthoraproximasesion.Text
            bda.SubmitChanges()
            bda.registrarLog(Context.User.Identity.Name, 6, Request.CurrentExecutionFilePath)
        End Using
    End Sub
#End Region
#Region "Enventos controles"
    Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardar.Click

        If Page.IsValid = False Then
            Response.Write("<script>alert('Datos incompletos.')</script>")
            Exit Sub
        Else

            '  Try
            If editar = True Then
                actualizardatos()
            Else
                guardar()
            End If
            Response.Redirect("InicioCAP.aspx")
            ' Catch ex As Exception
            '    Throw ex
            ' End Try
        End If
    End Sub

    Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate

        Dim mensaje As New StringBuilder




        If mensaje.Length > 0 Then
            args.IsValid = False
            Me.CustomValidator1.ErrorMessage = mensaje.ToString()
            Me.CustomValidator1.Enabled = True
        End If

    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Response.Redirect("InicioCAP.aspx")
    End Sub
#End Region

   
    Protected Sub btnImprimir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnImprimir.Click
        If Page.IsValid = False Then
            Response.Write("<script>alert('Datos incompletos.')</script>")
            Exit Sub
        Else


            If editar = True Then
                actualizardatos()
            Else
                guardar()
            End If
            'Response.Redirect("CAPPersonasImprimir.aspx?idPersona=" & hdIdPersona.Value)
            Response.Write("<script>window.print()</script>")
        End If
    End Sub
End Class
